It is a common programming practice to use a hash table to store attributes about a given entity, for example a person's age, salary, title, address, or a computer's name, network address, hardware specification, asset number, or a directory server's configuration, running state, error count and performance counters (representing current load). Constructing lists of these hash tables to keep track of many of these entities is also very common. This list can be referred to, and thought of, as a dictionary or directory, which can be accessed to reference information concerning each entity it contains. Conventionally, if one desired to search such data stored in a hash table, such a search was typically performed by a pre-designated primary key of the hash table.